Parallel computing is a form of computing in which multiple pieces of computational work are done simultaneously. Parallel computing requires partitioning work into independent pieces that run in parallel. This partitioning may be difficult to achieve.
Typically, to partition the work of a computation loop, it is best if the trip count or the number of iterations for the loop is determined before executing the loop. Dynamically partitioning work on the fly without knowing the trip count incurs significantly more overhead for synchronization. Computing the trip count in advance of loop execution may be difficult in computer programming languages such as C, C++, Java and C# that have integer arithmetic types that can wrap around on overflow.
Given this difficulty, there is a need for a method for computing a loop's trip count in an accurate and efficient manner in the presence of wrap-around arithmetic before the loop is executed.
Features, elements, and aspects of the invention that are referenced by the same numerals in different figures represent the same, equivalent, or similar features, elements, or aspects, in accordance with one or more embodiments.